package com.edmendst.xmall.service;

import com.edmendst.xmall.dto.ProductCategory;
import com.edmendst.xmall.dto.ProductSellInfo;
import com.edmendst.xmall.pojo.Category;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import java.util.List;
/**
 * Creat by mjz
 */
public interface ProductService {

    //更新（新建）商品分类名
    String updateProductCategory(ProductCategory productCategory);

    //删除商品分类名
    int deleteProductCategoryName(Integer categoryId);

    //出售商品
    String productSell(ProductSellInfo productSellInfo, List<MultipartFile> productCoverImage);

    //删除商品
    int deleteProduct(Integer productId, String username);

    //输出0级商品分类表
    List<Category> selectProductCategoryOfTop();

    //通过分类查询商品信息
    <SortedSetOperations>List<ProductSellInfo> selectProductByCategoryId(Integer categoryId);

    //关键词查询商品
    List<ProductSellInfo> selectProductByKeyWord(String productName);

    //通过卖家查询商品信息
    List<ProductSellInfo> getProductBySeller(Integer shopId);

    //输出已上架商品信息
    List<ProductSellInfo> outputProduct();

    //输出所有商品信息
    List<ProductSellInfo> outputAllProduct();

    //编辑商品价格
    String updateProductPrice(Integer productId, BigDecimal productPrice, String username);

    //编辑商品介绍
    String updateProductDescription(Integer productId, String productDescription,String username);

    //查看商品库存
    ProductSellInfo getStock(Integer productId);

    //通过id查询商品信息
    ProductSellInfo getProductById(Integer productId);

    //修改商品上下架状态
    String updateProductOnlineStatus(Integer productId, Integer productOnlineStatus);

    //修改商品审核状态
    String updateProductAuditStatus(Integer productId, Integer productAuditStatus, String username);
}
